import InfiniteSelect from './components/infinite-select/infinite-select.vue';

import SampleTable from './components/sample-table/sample-table.vue';
import SampleTableHeader from './components/sample-table/sample-table-header.vue';
import SampleTableHeaderColumn from './components/sample-table/sample-table-header-column.vue';
import SampleTableHeaderIndex from './components/sample-table/sample-table-header-index.vue';
import SampleTableHeaderSelection from './components/sample-table/sample-table-header-selection.vue';
import SampleTableHeaderExpand from './components/sample-table/sample-table-header-expand.vue';
import SampleTableBody from './components/sample-table/sample-table-body.vue';
import SampleTableBodyColumn from './components/sample-table/sample-table-body-column.vue';
import SampleTableBodyIndex from './components/sample-table/sample-table-body-index.vue';
import SampleTableBodySelection from './components/sample-table/sample-table-body-selection.vue';
import SampleTableBodyExpand from './components/sample-table/sample-table-body-expand.vue';

import InfiniteTable from './components/infinite-table/infinite-table.vue';

import MultipleCascader from './components/multiple-cascader/multiple-cascader.vue';

export default {
	install(Vue) {
		const components = {
			InfiniteSelect,

			SampleTable,
			SampleTableHeader,
			SampleTableHeaderColumn,
			SampleTableHeaderIndex,
			SampleTableHeaderSelection,
			SampleTableHeaderExpand,
			SampleTableBody,
			SampleTableBodyColumn,
			SampleTableBodyIndex,
			SampleTableBodySelection,
			SampleTableBodyExpand,

			InfiniteTable,
			InfiniteTableHeader: SampleTableHeader,
			InfiniteTableHeaderColumn: SampleTableHeaderColumn,
			InfiniteTableHeaderIndex: SampleTableHeaderIndex,
			InfiniteTableHeaderSelection: SampleTableHeaderSelection,
			InfiniteTableHeaderExpand: SampleTableHeaderExpand,
			InfiniteTableBody: SampleTableBody,
			InfiniteTableBodyColumn: SampleTableBodyColumn,
			InfiniteTableBodyIndex: SampleTableBodyIndex,
			InfiniteTableBodySelection: SampleTableBodySelection,
			InfiniteTableBodyExpand: SampleTableBodyExpand,

			MultipleCascader,
		};
		Object.keys(components).forEach(key => {
			Vue.component(key, components[key]);
		});
	},
};

// export default CountTo;
// if (typeof window !== 'undefined' && window.Vue) {
//   window.Vue.component('count-to', CountTo);
// }
